Make gtk_tree_view_enable_model_drag_[source|dest] compatible with
authorChristian Persch <chpe@src.gnome.org>
Tue, 10 Jun 2008 12:33:22 +0000 (12:33 +0000)
committerChristian Persch <chpe@src.gnome.org>
Tue, 10 Jun 2008 12:33:22 +0000 (12:33 +0000)
* gtk/gtktreeview.c: (destroy_info), (set_destination_row),
(gtk_tree_view_maybe_begin_dragging_row),
(gtk_tree_view_set_reorderable),
(gtk_tree_view_enable_model_drag_source),
(gtk_tree_view_enable_model_drag_dest),
(gtk_tree_view_unset_rows_drag_source),
(gtk_tree_view_unset_rows_drag_dest): Make
gtk_tree_view_enable_model_drag_[source|dest] compatible with
gtk_drag_[source|dest]_add_*_targets. Bug #506853.

svn path=/trunk/; revision=20349

ChangeLog
gtk/gtktreeview.c

index be1645d8c63a3726d10aed74f8d2e6ed6627e0af..f49851e12ac8f5edce322a829ef848629384c54e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2008-06-10  Christian Persch  <chpe@gnome.org>
+
+       * gtk/gtktreeview.c: (destroy_info), (set_destination_row),
+       (gtk_tree_view_maybe_begin_dragging_row),
+       (gtk_tree_view_set_reorderable),
+       (gtk_tree_view_enable_model_drag_source),
+       (gtk_tree_view_enable_model_drag_dest),
+       (gtk_tree_view_unset_rows_drag_source),
+       (gtk_tree_view_unset_rows_drag_dest): Make
+       gtk_tree_view_enable_model_drag_[source|dest] compatible with
+       gtk_drag_[source|dest]_add_*_targets. Bug #506853.
+
 2008-06-10  Christian Persch  <chpe@gnome.org>
 
        * gtk/gtktreeview.c: (gtk_tree_view_button_release_drag_column),
index 469906528effa861bb3d731472a727afbe0c500c..f2deab23208678fdfc65ae5cee1416f2087836b2 100644 (file)
@@ -92,10 +92,10 @@ typedef struct _TreeViewDragInfo TreeViewDragInfo;
 struct _TreeViewDragInfo
 {
   GdkModifierType start_button_mask;
-  GtkTargetList *source_target_list;
+  GtkTargetList *_unused_source_target_list;
   GdkDragAction source_actions;
 
-  GtkTargetList *dest_target_list;
+  GtkTargetList *_unused_dest_target_list;
 
   guint source_set : 1;
   guint dest_set : 1;
@@ -6538,29 +6538,9 @@ get_info (GtkTreeView *tree_view)
   return g_object_get_data (G_OBJECT (tree_view), "gtk-tree-view-drag-info");
 }
 
-static void
-clear_source_info (TreeViewDragInfo *di)
-{
-  if (di->source_target_list)
-    gtk_target_list_unref (di->source_target_list);
-
-  di->source_target_list = NULL;
-}
-
-static void
-clear_dest_info (TreeViewDragInfo *di)
-{
-  if (di->dest_target_list)
-    gtk_target_list_unref (di->dest_target_list);
-
-  di->dest_target_list = NULL;
-}
-
 static void
 destroy_info (TreeViewDragInfo *di)
 {
-  clear_source_info (di);
-  clear_dest_info (di);
   g_slice_free (TreeViewDragInfo, di);
 }
 
@@ -6783,7 +6763,8 @@ set_destination_row (GtkTreeView    *tree_view,
       return FALSE; /* no longer a drop site */
     }
 
-  *target = gtk_drag_dest_find_target (widget, context, di->dest_target_list);
+  *target = gtk_drag_dest_find_target (widget, context,
+                                       gtk_drag_dest_get_target_list (widget));
   if (*target == GDK_NONE)
     {
       return FALSE;
@@ -6932,6 +6913,7 @@ static gboolean
 gtk_tree_view_maybe_begin_dragging_row (GtkTreeView      *tree_view,
                                         GdkEventMotion   *event)
 {
+  GtkWidget *widget = GTK_WIDGET (tree_view);
   GdkDragContext *context;
   TreeViewDragInfo *di;
   GtkTreePath *path = NULL;
@@ -6948,7 +6930,7 @@ gtk_tree_view_maybe_begin_dragging_row (GtkTreeView      *tree_view,
   if (tree_view->priv->pressed_button < 0)
     goto out;
 
-  if (!gtk_drag_check_threshold (GTK_WIDGET (tree_view),
+  if (!gtk_drag_check_threshold (widget,
                                  tree_view->priv->press_start_x,
                                  tree_view->priv->press_start_y,
                                  event->x, event->y))
@@ -6985,8 +6967,8 @@ gtk_tree_view_maybe_begin_dragging_row (GtkTreeView      *tree_view,
 
   retval = TRUE;
 
-  context = gtk_drag_begin (GTK_WIDGET (tree_view),
-                            di->source_target_list,
+  context = gtk_drag_begin (widget,
+                            gtk_drag_source_get_target_list (widget),
                             di->source_actions,
                             button,
                             (GdkEvent*)event);
@@ -12384,11 +12366,6 @@ gtk_tree_view_row_expanded (GtkTreeView *tree_view,
   return (node->children != NULL);
 }
 
-static const GtkTargetEntry row_targets[] = {
-  { "GTK_TREE_MODEL_ROW", GTK_TARGET_SAME_WIDGET, 0 }
-};
-
-
 /**
  * gtk_tree_view_get_reorderable:
  * @tree_view: a #GtkTreeView
@@ -12435,6 +12412,10 @@ gtk_tree_view_set_reorderable (GtkTreeView *tree_view,
 
   if (reorderable)
     {
+      const GtkTargetEntry row_targets[] = {
+        { "GTK_TREE_MODEL_ROW", GTK_TARGET_SAME_WIDGET, 0 }
+      };
+
       gtk_tree_view_enable_model_drag_source (tree_view,
                                              GDK_BUTTON1_MASK,
                                              row_targets,
@@ -13316,12 +13297,9 @@ gtk_tree_view_enable_model_drag_source (GtkTreeView              *tree_view,
                       actions);
 
   di = ensure_info (tree_view);
-  clear_source_info (di);
 
   di->start_button_mask = start_button_mask;
-  di->source_target_list = gtk_target_list_new (targets, n_targets);
   di->source_actions = actions;
-
   di->source_set = TRUE;
 
   unset_reorderable (tree_view);
@@ -13354,11 +13332,6 @@ gtk_tree_view_enable_model_drag_dest (GtkTreeView              *tree_view,
                      actions);
 
   di = ensure_info (tree_view);
-  clear_dest_info (di);
-
-  if (targets)
-    di->dest_target_list = gtk_target_list_new (targets, n_targets);
-
   di->dest_set = TRUE;
 
   unset_reorderable (tree_view);
@@ -13384,7 +13357,6 @@ gtk_tree_view_unset_rows_drag_source (GtkTreeView *tree_view)
       if (di->source_set)
         {
           gtk_drag_source_unset (GTK_WIDGET (tree_view));
-          clear_source_info (di);
           di->source_set = FALSE;
         }
 
@@ -13415,7 +13387,6 @@ gtk_tree_view_unset_rows_drag_dest (GtkTreeView *tree_view)
       if (di->dest_set)
         {
           gtk_drag_dest_unset (GTK_WIDGET (tree_view));
-          clear_dest_info (di);
           di->dest_set = FALSE;
         }